package factory.functionFactory

/**
 * 工厂方法模式
 * 一个工厂对应一个产品
 *
 * 优点：扩展性强，以汽车生产为例，每增加一个型号的车，对应的创建一个产品和工厂即可，增加新的模块不需要对老的模块
 * 做任何的改动
 * 缺点：定义相对与简单工厂略显得复杂
 *
 * 两种实现方式:
 * 1.为每种产品创建一个工厂,各司其职
 * 2.可以使用泛型方法加反射来创建新的产品,传入产品类对象动态的创建
 *
 * 测试一下
 */
fun main() {
    AudiFactory().create(AudiCar::class.java).run()
}